iT邦幫忙

2021 iThome 鐵人賽

DAY 16
1

從這篇開始,我們要介紹一些Windows系統常識,做為一個資工先了解Windows的系統結構,懂得問題可以出現在什麼地方,來當做我們之後來Debug的知識,今天預計要來看研究一些基本系統資料夾的意義。


C槽主目錄

首先,讓我們由淺入深,從C槽講幾個大家都認識的資料夾出來(劃掉的是我自己建立的資料夾,因為我目前只有一個槽,所以自己的東西都擺在這裡)。
Imgur

  • DRIVERSeSupport是ASUS內建的備份和驅動程式夾
  • PerfLogs:全名是performance logs,是系統的資訊日誌檔,可以檢視系統表現,檢視具體問題和執行情況
  • Program Files:是預設使用者安裝程式的存放路徑Program Files (x86):程式安裝的時候,64位的程式一般安裝到Program Files中,32位元的程式通常會裝在這裡,讓 32位元的程式能執行在64位元的系統中
  • Temp:存放系統或其他軟體臨時檔案
  • Windows:Windows的作業系統資料夾
  • 使用者:包括使用者的資料像桌面、我的文件等,還有使用者帳戶的設定

不過還有一些項目可能被隱藏,這時候在檔案總管案檢視把隱藏的項目勾起來,再到選項的檢視把隱藏作業系統檔的選項取消勾選,使用完平常記得把開關關回去才不會誤觸系統檔。
Imgur

這時候會看到更多檔案和資料夾,像是儲存系統還原點的System Volume Information,紀錄intel晶片組驅動安裝的intel,應用程式不用提權就可以存放程式資料的ProgramData等等,或是虛擬記憶體的分頁檔pagefile.sys,睡眠儲存系統使用狀態的hiberfil.sys之類的。
Imgur
Imgur

總之各種檔案諸羅萬象的,細分下去還得了,如果遇到不認識的檔案google一下就有了,雖然大部分你找到的標題都是Can I delete XXX flie……如果你想要系統穩定的話,清理這回事還是交給專業的軟體去執行吧,筆者的目的是要來探討一些最近發現的重要的資料夾意義,跟我們前面的登錄檔和軟體安裝相關,所以可能有點零碎~就當作隨手筆記輕鬆看吧。


批次處理常用系統路徑

寫下幾個常用的系統位置變數,通常%%之間的大小寫無差別

  • %systemdrive% = C:\(當前啟動的系統的的磁碟區)
  • %windir% = %SystemRoot% = C:\ Windows(當前啟動的系統根目錄)
  • %programfiles% = C:\Program Files(程式安裝目錄)

C:\Windows的System32和SysWOW64的意義

因為現在的電腦大部分都是64位元的,但還是很多程式是32位元的版本,Program Files也因此出現x86版本,但還是有些動態連結庫跟文件會存在Windows資料夾內,仔細觀察會出現一件怪事,System32有大量的64位元文件,SysWOW64有大量的32位元程式,筆者一開始在找登錄檔文件還一度懷疑自己找錯位置,其實他們關係非淺。

這要回到一開始,在Windows系統跟intel處理器都是32位元的結構的時候,System32資料夾包括Windows系統文件,系統的內建的程式,還有各種程式會用到的.dll檔等等,甚至有軟體會把自己的.dll寫到這裡,程式從Program Files開始啟動,有時候會到System32加載.dll檔。

直到現在這個64位元的時代,系統大部分是64位元的,軟體也提供32和64位元兩種版本,通常32位元的程式可以向上兼容在64位元的系統上運行,但他們用的.dll檔一定也要是32位元的,遇到64位元則會崩潰,所以Program Files要分成兩種,System32也要拆兩個,因為很多軟體在讀取路徑都會直接讀System32,所以後來Windows就沿用這個名字,把目前主流的64位元需要的檔案放在這,以前32位元需要的檔案放到SysWOW64資料夾,這些程式的登錄檔常常會寫在HKLM\SOFTWARE\Wow6432NodeWOW64是代表Windows 32-bit on Windows 64-bit,而Windows系統中也有File System Redirector會去幫我們規劃好這兩個資料夾的內容避免安裝路徑搞錯。
總而言之,如果我們要查看目前的系統文件,多半是去System32看而不是去名稱帶有64的SysWOW64。


C:\Users\XXX\AppData資料夾

這個資料夾是隱藏的,他主要有三個子資料夾:

  • Local:等於%localappdata%,包含安裝的相關的文件,裡面的資料無法跟使用者配置文件一起移動,也無法跟伺服器同步,他也會包括一些下載的暫存文件跟使用者對軟體的設定檔,裡面有個Temp資料夾會放些暫存資料,如果要刪除,通常建議要超過24-48小時風險才比較低。
  • LocalLow:性質跟Local內容差不多,但他的訪問級別比較低,如果我們在受保護的情況下運行某個程式,他只能拜訪這個資料夾而不能拜訪Local。
  • Roaming:等於%appdata%,他包括一些軟體的使用者自定義的配置設定,具有在同個網域中可以互相共用的特性。

筆者會介紹這個資料夾是有原因的,好比有次我用Unity Hub想裝某個版本的Unity到D槽,那一次安裝動輒十幾G,結果似乎是網路問題安裝失敗,本來快滿出來的C槽就更滿了,解決辦法就是我們要到AppData\Local\Temp抓出剛剛下載不完整的Unity安裝檔移除掉才可以重新安裝,否則就要等24小時讓系統自己把他刪除,這是一個手動排除錯誤的例子,如果我們很清楚他的由來就可以這麼做。

或者有時候裝過一個應用程式又把他解除安裝了,再裝一次會發現上次的設定還在,原因就是解除安裝的時候沒有把配置文件拿掉,這樣有好有壞,雖然這些文件大小不大,不太會暫用磁碟空間,但我們有時候再次安裝是為了回到最初始的狀態,這些設定反而延用錯誤的設置,或是一些portable版的程式也會在這裡產生設定檔,手動移除可能可以回到初始狀態重新正常安裝。

今天講的是一些Windows系統夾的意義,對這些有一定的了解可以方便我們找到需要的資料,甚至手動排除一些安裝錯誤跟回復初始設定,下篇我們要講的是Windows的帳戶權限,除了一般使用者還有其他高級帳號,無時無刻在系統中處理不同等級的事務。

Imgur

參考資料:
https://www.gushiciku.cn/dl/1psc1/zh-tw
https://kist28366.pixnet.net/blog/post/375007390
https://www.itread01.com/content/1546488032.html
https://www.howtogeek.com/326509/whats-the-difference-between-the-system32-and-syswow64-folders-in-windows/
https://www.howtogeek.com/318177/what-is-the-appdata-folder-in-windows/
https://www.thewindowsclub.com/local-localnow-roaming-folders-windows-10
https://superuser.com/questions/21458/why-are-there-directories-called-local-locallow-and-roaming-under-users-user


上一篇
安裝與反安裝--軟體的彼得定律對系統的意義
下一篇
Windows系統權限--傳說的至高無上SYSTEM和虛擬高階TrustedInstaller
系列文
妄想對自己的Windows優化兼Debug的工程師很正常吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言